﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AmazonMODEL
{
    #region Luggage
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class Luggage
    {

        private LuggageProductType productTypeField;

        private LuggageVariationData variationDataField;

        private Battery batteryField;

        private string modelField;

        private string modelNameField;

        private VolumeDimension volumeCapacityNameField;

        private string[] specialFeaturesField;

        private string materialTypeField;

        private string closureTypeField;

        private string shellTypeField;

        private string teamNameField;

        private string innerMaterialTypeField;

        private string collectionField;

        private bool isStainResistantField;

        private bool isStainResistantFieldSpecified;

        private string strapTypeField;

        private string numberOfWheelsField;

        private WeightDimension lithiumBatteryWeightField;

        private string wheelTypeField;

        private string colorMapField;

        private string lifestyleField;

        private LengthDimension shoulderStrapDropField;

        private string sizeField;

        private string certificationField;

        private string seasonField;

        private string departmentField;

        private string outerMaterialTypeField;

        private BatteryCellTypeValues batteryCompositionField;

        private bool batteryCompositionFieldSpecified;

        private string loadConfigurationField;

        private string leatherTypeField;

        private string modelYearField;

        private string styleField;

        private string fabricTypeField;

        private string colorField;

        private string liningDescriptionField;

        private string batteryDescriptionField;

        private string specificationsField;

        private string batteryFormFactorField;

        private string patternField;

        private LengthDimension minimumCircumferenceField;

        private LengthDimension maximumCircumferenceField;

        private string lockTypeField;

        private string characterField;

        private string warrantyField;

        private string numberOfCompartmentsField;

        private string occasionTypeField;

        private string compartmentDescriptionField;

        private LengthDimension displaySizeField;

        private string handleTypeField;

        private string harmonizedCodeField;

        private bool veryHighValueField;

        private bool veryHighValueFieldSpecified;

        private AgeRecommendedDimension manufacturerMinimumAgeField;

        private WaterResistantType waterResistanceField;

        private bool waterResistanceFieldSpecified;

        private string wearResistanceField;

        private string warrantyTypeField;

        private string sizeMapField;

        private string careInstructionsField;

        private string includedComponentsField;

        private bool isAdultProductField;

        private bool isAdultProductFieldSpecified;

        private string[] performanceRatingField;

        private string sellerWarrantyDescriptionField;

        private string patternTypeField;

        private string themeField;

        private string[] specificUsesForProductField;

        private string opacityField;

        private string mfrWarrantyDescriptionTypeField;

        private string mfrWarrantyDescriptionPartsField;

        private string mfrWarrantyDescriptionLaborField;

        private string fabricWashField;

        private string capacityNameField;

        /// <remarks/>
        public LuggageProductType ProductType
        {
            get
            {
                return this.productTypeField;
            }
            set
            {
                this.productTypeField = value;
            }
        }

        /// <remarks/>
        public LuggageVariationData VariationData
        {
            get
            {
                return this.variationDataField;
            }
            set
            {
                this.variationDataField = value;
            }
        }

        /// <remarks/>
        public Battery Battery
        {
            get
            {
                return this.batteryField;
            }
            set
            {
                this.batteryField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string Model
        {
            get
            {
                return this.modelField;
            }
            set
            {
                this.modelField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string ModelName
        {
            get
            {
                return this.modelNameField;
            }
            set
            {
                this.modelNameField = value;
            }
        }

        /// <remarks/>
        public VolumeDimension VolumeCapacityName
        {
            get
            {
                return this.volumeCapacityNameField;
            }
            set
            {
                this.volumeCapacityNameField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("SpecialFeatures", DataType = "normalizedString")]
        public string[] SpecialFeatures
        {
            get
            {
                return this.specialFeaturesField;
            }
            set
            {
                this.specialFeaturesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string MaterialType
        {
            get
            {
                return this.materialTypeField;
            }
            set
            {
                this.materialTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string ClosureType
        {
            get
            {
                return this.closureTypeField;
            }
            set
            {
                this.closureTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string ShellType
        {
            get
            {
                return this.shellTypeField;
            }
            set
            {
                this.shellTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string TeamName
        {
            get
            {
                return this.teamNameField;
            }
            set
            {
                this.teamNameField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string InnerMaterialType
        {
            get
            {
                return this.innerMaterialTypeField;
            }
            set
            {
                this.innerMaterialTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string Collection
        {
            get
            {
                return this.collectionField;
            }
            set
            {
                this.collectionField = value;
            }
        }

        /// <remarks/>
        public bool IsStainResistant
        {
            get
            {
                return this.isStainResistantField;
            }
            set
            {
                this.isStainResistantField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsStainResistantSpecified
        {
            get
            {
                return this.isStainResistantFieldSpecified;
            }
            set
            {
                this.isStainResistantFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string StrapType
        {
            get
            {
                return this.strapTypeField;
            }
            set
            {
                this.strapTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "positiveInteger")]
        public string NumberOfWheels
        {
            get
            {
                return this.numberOfWheelsField;
            }
            set
            {
                this.numberOfWheelsField = value;
            }
        }

        /// <remarks/>
        public WeightDimension LithiumBatteryWeight
        {
            get
            {
                return this.lithiumBatteryWeightField;
            }
            set
            {
                this.lithiumBatteryWeightField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string WheelType
        {
            get
            {
                return this.wheelTypeField;
            }
            set
            {
                this.wheelTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string ColorMap
        {
            get
            {
                return this.colorMapField;
            }
            set
            {
                this.colorMapField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string Lifestyle
        {
            get
            {
                return this.lifestyleField;
            }
            set
            {
                this.lifestyleField = value;
            }
        }

        /// <remarks/>
        public LengthDimension ShoulderStrapDrop
        {
            get
            {
                return this.shoulderStrapDropField;
            }
            set
            {
                this.shoulderStrapDropField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string Size
        {
            get
            {
                return this.sizeField;
            }
            set
            {
                this.sizeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string Certification
        {
            get
            {
                return this.certificationField;
            }
            set
            {
                this.certificationField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string Season
        {
            get
            {
                return this.seasonField;
            }
            set
            {
                this.seasonField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string Department
        {
            get
            {
                return this.departmentField;
            }
            set
            {
                this.departmentField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string OuterMaterialType
        {
            get
            {
                return this.outerMaterialTypeField;
            }
            set
            {
                this.outerMaterialTypeField = value;
            }
        }

        /// <remarks/>
        public BatteryCellTypeValues BatteryComposition
        {
            get
            {
                return this.batteryCompositionField;
            }
            set
            {
                this.batteryCompositionField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool BatteryCompositionSpecified
        {
            get
            {
                return this.batteryCompositionFieldSpecified;
            }
            set
            {
                this.batteryCompositionFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string LoadConfiguration
        {
            get
            {
                return this.loadConfigurationField;
            }
            set
            {
                this.loadConfigurationField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string LeatherType
        {
            get
            {
                return this.leatherTypeField;
            }
            set
            {
                this.leatherTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "positiveInteger")]
        public string ModelYear
        {
            get
            {
                return this.modelYearField;
            }
            set
            {
                this.modelYearField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string Style
        {
            get
            {
                return this.styleField;
            }
            set
            {
                this.styleField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string FabricType
        {
            get
            {
                return this.fabricTypeField;
            }
            set
            {
                this.fabricTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string Color
        {
            get
            {
                return this.colorField;
            }
            set
            {
                this.colorField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string LiningDescription
        {
            get
            {
                return this.liningDescriptionField;
            }
            set
            {
                this.liningDescriptionField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string BatteryDescription
        {
            get
            {
                return this.batteryDescriptionField;
            }
            set
            {
                this.batteryDescriptionField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string Specifications
        {
            get
            {
                return this.specificationsField;
            }
            set
            {
                this.specificationsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string BatteryFormFactor
        {
            get
            {
                return this.batteryFormFactorField;
            }
            set
            {
                this.batteryFormFactorField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string Pattern
        {
            get
            {
                return this.patternField;
            }
            set
            {
                this.patternField = value;
            }
        }

        /// <remarks/>
        public LengthDimension MinimumCircumference
        {
            get
            {
                return this.minimumCircumferenceField;
            }
            set
            {
                this.minimumCircumferenceField = value;
            }
        }

        /// <remarks/>
        public LengthDimension MaximumCircumference
        {
            get
            {
                return this.maximumCircumferenceField;
            }
            set
            {
                this.maximumCircumferenceField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string LockType
        {
            get
            {
                return this.lockTypeField;
            }
            set
            {
                this.lockTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string Character
        {
            get
            {
                return this.characterField;
            }
            set
            {
                this.characterField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string Warranty
        {
            get
            {
                return this.warrantyField;
            }
            set
            {
                this.warrantyField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "positiveInteger")]
        public string NumberOfCompartments
        {
            get
            {
                return this.numberOfCompartmentsField;
            }
            set
            {
                this.numberOfCompartmentsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string OccasionType
        {
            get
            {
                return this.occasionTypeField;
            }
            set
            {
                this.occasionTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string CompartmentDescription
        {
            get
            {
                return this.compartmentDescriptionField;
            }
            set
            {
                this.compartmentDescriptionField = value;
            }
        }

        /// <remarks/>
        public LengthDimension DisplaySize
        {
            get
            {
                return this.displaySizeField;
            }
            set
            {
                this.displaySizeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string HandleType
        {
            get
            {
                return this.handleTypeField;
            }
            set
            {
                this.handleTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string HarmonizedCode
        {
            get
            {
                return this.harmonizedCodeField;
            }
            set
            {
                this.harmonizedCodeField = value;
            }
        }

        /// <remarks/>
        public bool VeryHighValue
        {
            get
            {
                return this.veryHighValueField;
            }
            set
            {
                this.veryHighValueField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool VeryHighValueSpecified
        {
            get
            {
                return this.veryHighValueFieldSpecified;
            }
            set
            {
                this.veryHighValueFieldSpecified = value;
            }
        }

        /// <remarks/>
        public AgeRecommendedDimension ManufacturerMinimumAge
        {
            get
            {
                return this.manufacturerMinimumAgeField;
            }
            set
            {
                this.manufacturerMinimumAgeField = value;
            }
        }

        /// <remarks/>
        public WaterResistantType WaterResistance
        {
            get
            {
                return this.waterResistanceField;
            }
            set
            {
                this.waterResistanceField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool WaterResistanceSpecified
        {
            get
            {
                return this.waterResistanceFieldSpecified;
            }
            set
            {
                this.waterResistanceFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string WearResistance
        {
            get
            {
                return this.wearResistanceField;
            }
            set
            {
                this.wearResistanceField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string WarrantyType
        {
            get
            {
                return this.warrantyTypeField;
            }
            set
            {
                this.warrantyTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string SizeMap
        {
            get
            {
                return this.sizeMapField;
            }
            set
            {
                this.sizeMapField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string CareInstructions
        {
            get
            {
                return this.careInstructionsField;
            }
            set
            {
                this.careInstructionsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string IncludedComponents
        {
            get
            {
                return this.includedComponentsField;
            }
            set
            {
                this.includedComponentsField = value;
            }
        }

        /// <remarks/>
        public bool IsAdultProduct
        {
            get
            {
                return this.isAdultProductField;
            }
            set
            {
                this.isAdultProductField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsAdultProductSpecified
        {
            get
            {
                return this.isAdultProductFieldSpecified;
            }
            set
            {
                this.isAdultProductFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("PerformanceRating", DataType = "normalizedString")]
        public string[] PerformanceRating
        {
            get
            {
                return this.performanceRatingField;
            }
            set
            {
                this.performanceRatingField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string SellerWarrantyDescription
        {
            get
            {
                return this.sellerWarrantyDescriptionField;
            }
            set
            {
                this.sellerWarrantyDescriptionField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string PatternType
        {
            get
            {
                return this.patternTypeField;
            }
            set
            {
                this.patternTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string Theme
        {
            get
            {
                return this.themeField;
            }
            set
            {
                this.themeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("SpecificUsesForProduct", DataType = "normalizedString")]
        public string[] SpecificUsesForProduct
        {
            get
            {
                return this.specificUsesForProductField;
            }
            set
            {
                this.specificUsesForProductField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string Opacity
        {
            get
            {
                return this.opacityField;
            }
            set
            {
                this.opacityField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string MfrWarrantyDescriptionType
        {
            get
            {
                return this.mfrWarrantyDescriptionTypeField;
            }
            set
            {
                this.mfrWarrantyDescriptionTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string MfrWarrantyDescriptionParts
        {
            get
            {
                return this.mfrWarrantyDescriptionPartsField;
            }
            set
            {
                this.mfrWarrantyDescriptionPartsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string MfrWarrantyDescriptionLabor
        {
            get
            {
                return this.mfrWarrantyDescriptionLaborField;
            }
            set
            {
                this.mfrWarrantyDescriptionLaborField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string FabricWash
        {
            get
            {
                return this.fabricWashField;
            }
            set
            {
                this.fabricWashField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "normalizedString")]
        public string CapacityName
        {
            get
            {
                return this.capacityNameField;
            }
            set
            {
                this.capacityNameField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum LuggageProductType
    {

        /// <remarks/>
        Luggage,
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class LuggageVariationData
    {

        private LuggageVariationDataParentage parentageField;

        private LuggageVariationDataVariationTheme variationThemeField;

        private bool variationThemeFieldSpecified;

        /// <remarks/>
        public LuggageVariationDataParentage Parentage
        {
            get
            {
                return this.parentageField;
            }
            set
            {
                this.parentageField = value;
            }
        }

        /// <remarks/>
        public LuggageVariationDataVariationTheme VariationTheme
        {
            get
            {
                return this.variationThemeField;
            }
            set
            {
                this.variationThemeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool VariationThemeSpecified
        {
            get
            {
                return this.variationThemeFieldSpecified;
            }
            set
            {
                this.variationThemeFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum LuggageVariationDataParentage
    {

        /// <remarks/>
        parent,

        /// <remarks/>
        child,
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum LuggageVariationDataVariationTheme
    {

        /// <remarks/>
        SizeName,

        /// <remarks/>
        ColorName,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("SizeName-ColorName")]
        SizeNameColorName,
    }
    #endregion
}
